<?php

declare(strict_types=1);

namespace ImiApp\ApiServer\Api\Model\Base;

use Imi\Config\Annotation\ConfigValue;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Entity;
use Imi\Model\Annotation\Table;
use ImiApp\ImiServer\AbstractModel as Model;

/**
 * 商品 基类.
 *
 * @Entity(camel=false, bean=true, incrUpdate=false)
 * @Table(name=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\Goods.name", default="fa_goods"), usePrefix=false, id={"id"}, dbPoolName=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\Goods.poolName"))
 * @DDL(sql="CREATE TABLE `fa_goods` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `apply_status` enum('0','1','2','3') DEFAULT '0' COMMENT '审核状态:0=未知,1=申请中,2=已通过,3=已拒绝',
  `refuse_ps` varchar(255) DEFAULT NULL COMMENT '拒绝备注',
  `type` enum('normal','virtual','service') NOT NULL DEFAULT 'normal' COMMENT '商品类型:normal=实体商品,virtual=虚拟商品,service=服务',
  `title` varchar(100) NOT NULL COMMENT '标题',
  `subtitle` varchar(255) DEFAULT NULL COMMENT '副标题',
  `status` enum('up','hidden','down') DEFAULT NULL COMMENT '商品状态:up=上架,hidden=隐藏商品,down=下架',
  `weigh` int(11) NOT NULL DEFAULT '0' COMMENT '排序(从大到小)',
  `goodscate_ids` varchar(255) DEFAULT NULL,
  `category_ids` varchar(120) DEFAULT NULL COMMENT '所属分类',
  `new_status` enum('new','unused','soon') DEFAULT 'new' COMMENT '商品类型:new=全新,unused=闲置,soon=临期',
  `video_image` varchar(255) DEFAULT NULL COMMENT '视频封面',
  `video_file` varchar(255) DEFAULT NULL COMMENT '视频文件',
  `image` varchar(255) DEFAULT NULL COMMENT '商品主图',
  `images` varchar(2500) DEFAULT NULL COMMENT '轮播图',
  `params` varchar(2500) DEFAULT NULL COMMENT '参数详情',
  `content` text COMMENT '图文详情',
  `price` decimal(10,2) NOT NULL COMMENT '价格',
  `original_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '原价',
  `is_sku` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否多规格',
  `likes` int(11) NOT NULL DEFAULT '0' COMMENT '收藏人数',
  `views` int(11) NOT NULL DEFAULT '0' COMMENT '浏览人数',
  `sales` int(11) NOT NULL DEFAULT '0' COMMENT '销量',
  `show_sales` int(11) NOT NULL COMMENT '显示销量',
  `service_ids` varchar(255) DEFAULT NULL COMMENT '服务标签',
  `dispatch_type` varchar(255) DEFAULT NULL COMMENT '发货方式:express=物流快递,selfetch=用户自提,store=商家配送,autosend=自动发货,service=上门核销',
  `dispatch_ids` varchar(255) DEFAULT NULL COMMENT '发货模板',
  `goods_service_ratio` decimal(6,3) DEFAULT '0.000' COMMENT '卖家现金服务费比率',
  `createtime` int(11) DEFAULT NULL COMMENT '添加时间',
  `updatetime` int(11) DEFAULT NULL COMMENT '更新时间',
  `deletetime` int(11) DEFAULT NULL COMMENT '删除时间',
  `store_id` int(10) unsigned DEFAULT NULL COMMENT '店铺ID',
  `goodsbrand_id` int(10) unsigned DEFAULT NULL COMMENT '品牌ID',
  `send_addr` varchar(255) DEFAULT NULL COMMENT '发货地址',
  `content_images` text COMMENT '详情多图',
  `expire_time` int(10) DEFAULT NULL COMMENT '到期时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品'", decode="")
 *
 * @property int|null $id 
 * @property string|null $applyStatus 审核状态:0=未知,1=申请中,2=已通过,3=已拒绝
 * @property string|null $refusePs 拒绝备注
 * @property string|null $type 商品类型:normal=实体商品,virtual=虚拟商品,service=服务
 * @property string|null $title 标题
 * @property string|null $subtitle 副标题
 * @property string|null $status 商品状态:up=上架,hidden=隐藏商品,down=下架
 * @property int|null $weigh 排序(从大到小)
 * @property string|null $goodscateIds 
 * @property string|null $categoryIds 所属分类
 * @property string|null $newStatus 商品类型:new=全新,unused=闲置,soon=临期
 * @property string|null $videoImage 视频封面
 * @property string|null $videoFile 视频文件
 * @property string|null $image 商品主图
 * @property string|null $images 轮播图
 * @property string|null $params 参数详情
 * @property string|null $content 图文详情
 * @property string|float|int|null $price 价格
 * @property string|float|int|null $originalPrice 原价
 * @property int|null $isSku 是否多规格
 * @property int|null $likes 收藏人数
 * @property int|null $views 浏览人数
 * @property int|null $sales 销量
 * @property int|null $showSales 显示销量
 * @property string|null $serviceIds 服务标签
 * @property string|null $dispatchType 发货方式:express=物流快递,selfetch=用户自提,store=商家配送,autosend=自动发货,service=上门核销
 * @property string|null $dispatchIds 发货模板
 * @property string|float|int|null $goodsServiceRatio 卖家现金服务费比率
 * @property int|null $createtime 添加时间
 * @property int|null $updatetime 更新时间
 * @property int|null $deletetime 删除时间
 * @property int|null $storeId 店铺ID
 * @property int|null $goodsbrandId 品牌ID
 * @property string|null $sendAddr 发货地址
 * @property string|null $contentImages 详情多图
 * @property int|null $expireTime 到期时间
 */
abstract class GoodsBase extends Model
{
    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEY = 'id';

    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEYS = ["id"];

    /**
     * id.
     * @Column(name="id", type="int", length=11, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $id = NULL;

    /**
     * 获取 id.
     *
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * 赋值 id.
     * @param int|null $id id
     * @return static
     */
    public function setId($id)
    {
        $this->id = null === $id ? null : (int)$id;
        return $this;
    }

    /**
     * 审核状态:0=未知,1=申请中,2=已通过,3=已拒绝.
     * apply_status
     * @Column(name="apply_status", type="enum", length=0, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $applyStatus = '0';

    /**
     * 获取 applyStatus - 审核状态:0=未知,1=申请中,2=已通过,3=已拒绝.
     *
     * @return string|null
     */
    public function getApplyStatus(): ?string
    {
        return $this->applyStatus;
    }

    /**
     * 赋值 applyStatus - 审核状态:0=未知,1=申请中,2=已通过,3=已拒绝.
     * @param string|null $applyStatus apply_status
     * @return static
     */
    public function setApplyStatus($applyStatus)
    {
        $this->applyStatus = null === $applyStatus ? null : (string)$applyStatus;
        return $this;
    }

    /**
     * 拒绝备注.
     * refuse_ps
     * @Column(name="refuse_ps", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $refusePs = NULL;

    /**
     * 获取 refusePs - 拒绝备注.
     *
     * @return string|null
     */
    public function getRefusePs(): ?string
    {
        return $this->refusePs;
    }

    /**
     * 赋值 refusePs - 拒绝备注.
     * @param string|null $refusePs refuse_ps
     * @return static
     */
    public function setRefusePs($refusePs)
    {
        $this->refusePs = null === $refusePs ? null : (string)$refusePs;
        return $this;
    }

    /**
     * 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     * type
     * @Column(name="type", type="enum", length=0, accuracy=0, nullable=false, default="normal", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $type = 'normal';

    /**
     * 获取 type - 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     *
     * @return string|null
     */
    public function getType(): ?string
    {
        return $this->type;
    }

    /**
     * 赋值 type - 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     * @param string|null $type type
     * @return static
     */
    public function setType($type)
    {
        $this->type = null === $type ? null : (string)$type;
        return $this;
    }

    /**
     * 标题.
     * title
     * @Column(name="title", type="varchar", length=100, accuracy=0, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $title = NULL;

    /**
     * 获取 title - 标题.
     *
     * @return string|null
     */
    public function getTitle(): ?string
    {
        return $this->title;
    }

    /**
     * 赋值 title - 标题.
     * @param string|null $title title
     * @return static
     */
    public function setTitle($title)
    {
        $this->title = null === $title ? null : (string)$title;
        return $this;
    }

    /**
     * 副标题.
     * subtitle
     * @Column(name="subtitle", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $subtitle = NULL;

    /**
     * 获取 subtitle - 副标题.
     *
     * @return string|null
     */
    public function getSubtitle(): ?string
    {
        return $this->subtitle;
    }

    /**
     * 赋值 subtitle - 副标题.
     * @param string|null $subtitle subtitle
     * @return static
     */
    public function setSubtitle($subtitle)
    {
        $this->subtitle = null === $subtitle ? null : (string)$subtitle;
        return $this;
    }

    /**
     * 商品状态:up=上架,hidden=隐藏商品,down=下架.
     * status
     * @Column(name="status", type="enum", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $status = NULL;

    /**
     * 获取 status - 商品状态:up=上架,hidden=隐藏商品,down=下架.
     *
     * @return string|null
     */
    public function getStatus(): ?string
    {
        return $this->status;
    }

    /**
     * 赋值 status - 商品状态:up=上架,hidden=隐藏商品,down=下架.
     * @param string|null $status status
     * @return static
     */
    public function setStatus($status)
    {
        $this->status = null === $status ? null : (string)$status;
        return $this;
    }

    /**
     * 排序(从大到小).
     * weigh
     * @Column(name="weigh", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $weigh = 0;

    /**
     * 获取 weigh - 排序(从大到小).
     *
     * @return int|null
     */
    public function getWeigh(): ?int
    {
        return $this->weigh;
    }

    /**
     * 赋值 weigh - 排序(从大到小).
     * @param int|null $weigh weigh
     * @return static
     */
    public function setWeigh($weigh)
    {
        $this->weigh = null === $weigh ? null : (int)$weigh;
        return $this;
    }

    /**
     * goodscate_ids.
     * @Column(name="goodscate_ids", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $goodscateIds = NULL;

    /**
     * 获取 goodscateIds.
     *
     * @return string|null
     */
    public function getGoodscateIds(): ?string
    {
        return $this->goodscateIds;
    }

    /**
     * 赋值 goodscateIds.
     * @param string|null $goodscateIds goodscate_ids
     * @return static
     */
    public function setGoodscateIds($goodscateIds)
    {
        $this->goodscateIds = null === $goodscateIds ? null : (string)$goodscateIds;
        return $this;
    }

    /**
     * 所属分类.
     * category_ids
     * @Column(name="category_ids", type="varchar", length=120, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $categoryIds = NULL;

    /**
     * 获取 categoryIds - 所属分类.
     *
     * @return string|null
     */
    public function getCategoryIds(): ?string
    {
        return $this->categoryIds;
    }

    /**
     * 赋值 categoryIds - 所属分类.
     * @param string|null $categoryIds category_ids
     * @return static
     */
    public function setCategoryIds($categoryIds)
    {
        $this->categoryIds = null === $categoryIds ? null : (string)$categoryIds;
        return $this;
    }

    /**
     * 商品类型:new=全新,unused=闲置,soon=临期.
     * new_status
     * @Column(name="new_status", type="enum", length=0, accuracy=0, nullable=true, default="new", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $newStatus = 'new';

    /**
     * 获取 newStatus - 商品类型:new=全新,unused=闲置,soon=临期.
     *
     * @return string|null
     */
    public function getNewStatus(): ?string
    {
        return $this->newStatus;
    }

    /**
     * 赋值 newStatus - 商品类型:new=全新,unused=闲置,soon=临期.
     * @param string|null $newStatus new_status
     * @return static
     */
    public function setNewStatus($newStatus)
    {
        $this->newStatus = null === $newStatus ? null : (string)$newStatus;
        return $this;
    }

    /**
     * 视频封面.
     * video_image
     * @Column(name="video_image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $videoImage = NULL;

    /**
     * 获取 videoImage - 视频封面.
     *
     * @return string|null
     */
    public function getVideoImage(): ?string
    {
        return $this->videoImage;
    }

    /**
     * 赋值 videoImage - 视频封面.
     * @param string|null $videoImage video_image
     * @return static
     */
    public function setVideoImage($videoImage)
    {
        $this->videoImage = null === $videoImage ? null : (string)$videoImage;
        return $this;
    }

    /**
     * 视频文件.
     * video_file
     * @Column(name="video_file", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $videoFile = NULL;

    /**
     * 获取 videoFile - 视频文件.
     *
     * @return string|null
     */
    public function getVideoFile(): ?string
    {
        return $this->videoFile;
    }

    /**
     * 赋值 videoFile - 视频文件.
     * @param string|null $videoFile video_file
     * @return static
     */
    public function setVideoFile($videoFile)
    {
        $this->videoFile = null === $videoFile ? null : (string)$videoFile;
        return $this;
    }

    /**
     * 商品主图.
     * image
     * @Column(name="image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $image = NULL;

    /**
     * 获取 image - 商品主图.
     *
     * @return string|null
     */
    public function getImage(): ?string
    {
        return $this->image;
    }

    /**
     * 赋值 image - 商品主图.
     * @param string|null $image image
     * @return static
     */
    public function setImage($image)
    {
        $this->image = null === $image ? null : (string)$image;
        return $this;
    }

    /**
     * 轮播图.
     * images
     * @Column(name="images", type="varchar", length=2500, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $images = NULL;

    /**
     * 获取 images - 轮播图.
     *
     * @return string|null
     */
    public function getImages(): ?string
    {
        return $this->images;
    }

    /**
     * 赋值 images - 轮播图.
     * @param string|null $images images
     * @return static
     */
    public function setImages($images)
    {
        $this->images = null === $images ? null : (string)$images;
        return $this;
    }

    /**
     * 参数详情.
     * params
     * @Column(name="params", type="varchar", length=2500, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $params = NULL;

    /**
     * 获取 params - 参数详情.
     *
     * @return string|null
     */
    public function getParams(): ?string
    {
        return $this->params;
    }

    /**
     * 赋值 params - 参数详情.
     * @param string|null $params params
     * @return static
     */
    public function setParams($params)
    {
        $this->params = null === $params ? null : (string)$params;
        return $this;
    }

    /**
     * 图文详情.
     * content
     * @Column(name="content", type="text", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $content = NULL;

    /**
     * 获取 content - 图文详情.
     *
     * @return string|null
     */
    public function getContent(): ?string
    {
        return $this->content;
    }

    /**
     * 赋值 content - 图文详情.
     * @param string|null $content content
     * @return static
     */
    public function setContent($content)
    {
        $this->content = null === $content ? null : (string)$content;
        return $this;
    }

    /**
     * 价格.
     * price
     * @Column(name="price", type="decimal", length=10, accuracy=2, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $price = NULL;

    /**
     * 获取 price - 价格.
     *
     * @return string|float|int|null
     */
    public function getPrice()
    {
        return $this->price;
    }

    /**
     * 赋值 price - 价格.
     * @param string|float|int|null $price price
     * @return static
     */
    public function setPrice($price)
    {
        $this->price = null === $price ? null : $price;
        return $this;
    }

    /**
     * 原价.
     * original_price
     * @Column(name="original_price", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $originalPrice = NULL;

    /**
     * 获取 originalPrice - 原价.
     *
     * @return string|float|int|null
     */
    public function getOriginalPrice()
    {
        return $this->originalPrice;
    }

    /**
     * 赋值 originalPrice - 原价.
     * @param string|float|int|null $originalPrice original_price
     * @return static
     */
    public function setOriginalPrice($originalPrice)
    {
        $this->originalPrice = null === $originalPrice ? null : $originalPrice;
        return $this;
    }

    /**
     * 是否多规格.
     * is_sku
     * @Column(name="is_sku", type="tinyint", length=1, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $isSku = 0;

    /**
     * 获取 isSku - 是否多规格.
     *
     * @return int|null
     */
    public function getIsSku(): ?int
    {
        return $this->isSku;
    }

    /**
     * 赋值 isSku - 是否多规格.
     * @param int|null $isSku is_sku
     * @return static
     */
    public function setIsSku($isSku)
    {
        $this->isSku = null === $isSku ? null : (int)$isSku;
        return $this;
    }

    /**
     * 收藏人数.
     * likes
     * @Column(name="likes", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $likes = 0;

    /**
     * 获取 likes - 收藏人数.
     *
     * @return int|null
     */
    public function getLikes(): ?int
    {
        return $this->likes;
    }

    /**
     * 赋值 likes - 收藏人数.
     * @param int|null $likes likes
     * @return static
     */
    public function setLikes($likes)
    {
        $this->likes = null === $likes ? null : (int)$likes;
        return $this;
    }

    /**
     * 浏览人数.
     * views
     * @Column(name="views", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $views = 0;

    /**
     * 获取 views - 浏览人数.
     *
     * @return int|null
     */
    public function getViews(): ?int
    {
        return $this->views;
    }

    /**
     * 赋值 views - 浏览人数.
     * @param int|null $views views
     * @return static
     */
    public function setViews($views)
    {
        $this->views = null === $views ? null : (int)$views;
        return $this;
    }

    /**
     * 销量.
     * sales
     * @Column(name="sales", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $sales = 0;

    /**
     * 获取 sales - 销量.
     *
     * @return int|null
     */
    public function getSales(): ?int
    {
        return $this->sales;
    }

    /**
     * 赋值 sales - 销量.
     * @param int|null $sales sales
     * @return static
     */
    public function setSales($sales)
    {
        $this->sales = null === $sales ? null : (int)$sales;
        return $this;
    }

    /**
     * 显示销量.
     * show_sales
     * @Column(name="show_sales", type="int", length=11, accuracy=0, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $showSales = NULL;

    /**
     * 获取 showSales - 显示销量.
     *
     * @return int|null
     */
    public function getShowSales(): ?int
    {
        return $this->showSales;
    }

    /**
     * 赋值 showSales - 显示销量.
     * @param int|null $showSales show_sales
     * @return static
     */
    public function setShowSales($showSales)
    {
        $this->showSales = null === $showSales ? null : (int)$showSales;
        return $this;
    }

    /**
     * 服务标签.
     * service_ids
     * @Column(name="service_ids", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $serviceIds = NULL;

    /**
     * 获取 serviceIds - 服务标签.
     *
     * @return string|null
     */
    public function getServiceIds(): ?string
    {
        return $this->serviceIds;
    }

    /**
     * 赋值 serviceIds - 服务标签.
     * @param string|null $serviceIds service_ids
     * @return static
     */
    public function setServiceIds($serviceIds)
    {
        $this->serviceIds = null === $serviceIds ? null : (string)$serviceIds;
        return $this;
    }

    /**
     * 发货方式:express=物流快递,selfetch=用户自提,store=商家配送,autosend=自动发货,service=上门核销.
     * dispatch_type
     * @Column(name="dispatch_type", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $dispatchType = NULL;

    /**
     * 获取 dispatchType - 发货方式:express=物流快递,selfetch=用户自提,store=商家配送,autosend=自动发货,service=上门核销.
     *
     * @return string|null
     */
    public function getDispatchType(): ?string
    {
        return $this->dispatchType;
    }

    /**
     * 赋值 dispatchType - 发货方式:express=物流快递,selfetch=用户自提,store=商家配送,autosend=自动发货,service=上门核销.
     * @param string|null $dispatchType dispatch_type
     * @return static
     */
    public function setDispatchType($dispatchType)
    {
        $this->dispatchType = null === $dispatchType ? null : (string)$dispatchType;
        return $this;
    }

    /**
     * 发货模板.
     * dispatch_ids
     * @Column(name="dispatch_ids", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $dispatchIds = NULL;

    /**
     * 获取 dispatchIds - 发货模板.
     *
     * @return string|null
     */
    public function getDispatchIds(): ?string
    {
        return $this->dispatchIds;
    }

    /**
     * 赋值 dispatchIds - 发货模板.
     * @param string|null $dispatchIds dispatch_ids
     * @return static
     */
    public function setDispatchIds($dispatchIds)
    {
        $this->dispatchIds = null === $dispatchIds ? null : (string)$dispatchIds;
        return $this;
    }

    /**
     * 卖家现金服务费比率.
     * goods_service_ratio
     * @Column(name="goods_service_ratio", type="decimal", length=6, accuracy=3, nullable=true, default="0.000", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $goodsServiceRatio = NULL;

    /**
     * 获取 goodsServiceRatio - 卖家现金服务费比率.
     *
     * @return string|float|int|null
     */
    public function getGoodsServiceRatio()
    {
        return $this->goodsServiceRatio;
    }

    /**
     * 赋值 goodsServiceRatio - 卖家现金服务费比率.
     * @param string|float|int|null $goodsServiceRatio goods_service_ratio
     * @return static
     */
    public function setGoodsServiceRatio($goodsServiceRatio)
    {
        $this->goodsServiceRatio = null === $goodsServiceRatio ? null : $goodsServiceRatio;
        return $this;
    }

    /**
     * 添加时间.
     * createtime
     * @Column(name="createtime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $createtime = NULL;

    /**
     * 获取 createtime - 添加时间.
     *
     * @return int|null
     */
    public function getCreatetime(): ?int
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime - 添加时间.
     * @param int|null $createtime createtime
     * @return static
     */
    public function setCreatetime($createtime)
    {
        $this->createtime = null === $createtime ? null : (int)$createtime;
        return $this;
    }

    /**
     * 更新时间.
     * updatetime
     * @Column(name="updatetime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $updatetime = NULL;

    /**
     * 获取 updatetime - 更新时间.
     *
     * @return int|null
     */
    public function getUpdatetime(): ?int
    {
        return $this->updatetime;
    }

    /**
     * 赋值 updatetime - 更新时间.
     * @param int|null $updatetime updatetime
     * @return static
     */
    public function setUpdatetime($updatetime)
    {
        $this->updatetime = null === $updatetime ? null : (int)$updatetime;
        return $this;
    }

    /**
     * 删除时间.
     * deletetime
     * @Column(name="deletetime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $deletetime = NULL;

    /**
     * 获取 deletetime - 删除时间.
     *
     * @return int|null
     */
    public function getDeletetime(): ?int
    {
        return $this->deletetime;
    }

    /**
     * 赋值 deletetime - 删除时间.
     * @param int|null $deletetime deletetime
     * @return static
     */
    public function setDeletetime($deletetime)
    {
        $this->deletetime = null === $deletetime ? null : (int)$deletetime;
        return $this;
    }

    /**
     * 店铺ID.
     * store_id
     * @Column(name="store_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $storeId = NULL;

    /**
     * 获取 storeId - 店铺ID.
     *
     * @return int|null
     */
    public function getStoreId(): ?int
    {
        return $this->storeId;
    }

    /**
     * 赋值 storeId - 店铺ID.
     * @param int|null $storeId store_id
     * @return static
     */
    public function setStoreId($storeId)
    {
        $this->storeId = null === $storeId ? null : (int)$storeId;
        return $this;
    }

    /**
     * 品牌ID.
     * goodsbrand_id
     * @Column(name="goodsbrand_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $goodsbrandId = NULL;

    /**
     * 获取 goodsbrandId - 品牌ID.
     *
     * @return int|null
     */
    public function getGoodsbrandId(): ?int
    {
        return $this->goodsbrandId;
    }

    /**
     * 赋值 goodsbrandId - 品牌ID.
     * @param int|null $goodsbrandId goodsbrand_id
     * @return static
     */
    public function setGoodsbrandId($goodsbrandId)
    {
        $this->goodsbrandId = null === $goodsbrandId ? null : (int)$goodsbrandId;
        return $this;
    }

    /**
     * 发货地址.
     * send_addr
     * @Column(name="send_addr", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $sendAddr = NULL;

    /**
     * 获取 sendAddr - 发货地址.
     *
     * @return string|null
     */
    public function getSendAddr(): ?string
    {
        return $this->sendAddr;
    }

    /**
     * 赋值 sendAddr - 发货地址.
     * @param string|null $sendAddr send_addr
     * @return static
     */
    public function setSendAddr($sendAddr)
    {
        $this->sendAddr = null === $sendAddr ? null : (string)$sendAddr;
        return $this;
    }

    /**
     * 详情多图.
     * content_images
     * @Column(name="content_images", type="text", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $contentImages = NULL;

    /**
     * 获取 contentImages - 详情多图.
     *
     * @return string|null
     */
    public function getContentImages(): ?string
    {
        return $this->contentImages;
    }

    /**
     * 赋值 contentImages - 详情多图.
     * @param string|null $contentImages content_images
     * @return static
     */
    public function setContentImages($contentImages)
    {
        $this->contentImages = null === $contentImages ? null : (string)$contentImages;
        return $this;
    }

    /**
     * 到期时间.
     * expire_time
     * @Column(name="expire_time", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $expireTime = NULL;

    /**
     * 获取 expireTime - 到期时间.
     *
     * @return int|null
     */
    public function getExpireTime(): ?int
    {
        return $this->expireTime;
    }

    /**
     * 赋值 expireTime - 到期时间.
     * @param int|null $expireTime expire_time
     * @return static
     */
    public function setExpireTime($expireTime)
    {
        $this->expireTime = null === $expireTime ? null : (int)$expireTime;
        return $this;
    }

}
